#pragma once
//数据行(记录)类，存储数据表的一行数据

#include "msql_global.h"
#include "MSqlDefines.h"

#include <QVariant>
#include <QList>

namespace NsMSql
{
	class MSQL_EXPORT MSqlTableRow
	{
	public:
		MSqlTableRow() {};
	public:
		//序列化函数（将成员变量按字段顺序序列化 多行数据）
		virtual QList<QList<QVariant>> serialize() = 0;
		//反序列化函数（将查询结果按字段顺序反序列化到成员变量中 单行）
		virtual void deserialize(QMap<QString, QVariant> row) = 0;
		//反序列化函数（将查询结果按字段顺序反序列化到成员变量中 多行）
		virtual void deserialize(QList<QMap<QString, QVariant>> rows) = 0;
	private:
		QList<QVariant> m_row;		//一行数据
		QMap<QString, QVariant> m_fieldNameToValueMap;		//<字段名，字段值>
	};
}

